package com.ambow.shop.validator;

import java.util.ArrayList;
import java.util.List;

import com.ambow.shop.domain.ProductForm;
import com.ambow.shop.util.DataValidator;

/**
 * 产品数据验证器。
 * 
 * @author chunw
 *
 */
public class ProductValidator {

	/**
	 * 根据给出得产品表单，验证并返回其中错误列表。
	 * 
	 * @param form 产品表单；
	 * @return 错误列表
	 */
	public List<String> validate(ProductForm form) {
		List<String> errors = new ArrayList<String>();

		if (DataValidator.isEmpty(form.getName())) {
			errors.add("名称为空");
		}

		if (DataValidator.isEmpty(form.getDescription())) {
			errors.add("描述为空");
		}

		String price = form.getPrice();
		if (DataValidator.isEmpty(price)) {
			errors.add("价格为空");
		} else {
			if (!DataValidator.isMoney(price)) {
				errors.add("价格格式错误");
			}
		}

		String image = form.getImage();
		if (DataValidator.isEmpty(image)) {
			errors.add("图片为空");
		} else {
			if (!(image.endsWith(".jpg") || image.endsWith(".png"))) {
				errors.add("图片不为jpg文件");
			}
		}

		String categoryId = form.getCategoryId();
		if (DataValidator.isEmpty(categoryId)) {
			errors.add("产品类型为空");
		} else {
			if (!DataValidator.isInteger(categoryId)) {
				errors.add("产品类型格式错误");
			}
		}

		return errors;
	}
}
